'''
莫尔斯码 加密 解密
2021-8-15
'''
import time
import pygame

import test23split_str


class Morse:
    def __init__(self):
        self.w_to_m = {'a': '.-', 'b': '-...', 'c': '-.-.', 'd': '-..', 'e': '.', 'f': '..-.', 'g': '--.', 'h': '....',
                       'i': '..', 'j': '.---', 'k': '-.-', 'l': '.-..', 'm': '--', 'n': '-.', 'o': '---', 'p': '.--.',
                       'q': '--.-', 'r': '.-.', 's': '...', 't': '-', 'u': '..-', 'v': '...-', 'w': '.--', 'x': '-..-',
                       'y': '-.--', 'z': '--..', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....',
                       '6': '-....', '7': '--...', '8': '---..', '9': '----.', '0': '-----', '(': '-.--.',
                       ')': '-.--.-', '?': '..--..'}
        self.m_to_w = {'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F', '--.': 'G', '....': 'H',
                       '..': 'I', '.---': 'J', '-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O', '.--.': 'P',
                       '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X',
                       '-.--': 'Y', '--..': 'Z', '.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5',
                       '-....': '6', '--...': '7', '---..': '8', '----.': '9', '-----': '0', '..--..': '?',
                       '-..-.': '/', '-.--.-': '()', '-....-': '-', '.-.-.-': '.'
                       }

    def playmp3(self):
        pygame.init()
        track = pygame.mixer.Sound('.\\mp3\\di.wav')
        track.play()
        time.sleep(5)
        track.stop()

    def word_to_morse(self, word):
        r = ''
        for i in word:
            if i in self.w_to_m:
                morse = self.w_to_m[i]
                r = r + morse + ' '
            elif i == ' ':
                r += ' '
        return r

    def morse_to_word(self, morse):
        l = test23split_str.fg(morse, ' ')
        r = ''
        for i in l:
            # if i != ' ':
            if i in self.m_to_w:
                word = self.m_to_w[i]
                r += word
            elif i == '':
                r += ' '
        return r


if __name__ == '__main__':
    morse = Morse()
    # morse.playmp3()
    print(morse.word_to_morse('hello bd4akc='))
    print(morse.morse_to_word('-.... --... --... ....-'))
